本发明属于基于部署网络接入点的无线通信技术,其特征在于,它由ARM控制器及其音频处理芯片、网卡接口、SD卡接口及电源构成,在该ARM控制器的网络层,在IP协议基础上,开发寻找并维护、重建传输路由以及路由差错控制各模块,中间节点以判断或重建反向路由、路由是否最新且跳数最少为据,寻找下一跳以便把源节点收到的路由请求报文发送到目的节点,而目的节点便可基于反向路由同样把路由报文直接发送或者通过中间节点间接发送给源节点或上游的中间节点。本发明具有:不需要固定基础设施支持,抗毁性强,便于快速无线自组网络,适用于多种场合、多种频段和多种业务需求、且可与现有网络协同。1、无线多跳网络音频、数据传输节点设备,其特征在于,含有:ARM控 制器、音频处理芯片、SD卡接口、PCMCIA/USB无线网卡接口以及电源,其中: 音频处理芯片,与所述ARM控制器互连,该音频芯片在采集完数据之后, 由ARM控制器进行处理,把处理后的数据压缩编码存放在缓存区内,ARM控 制器再通过PCMCIA/USB网卡接口用UDP传输协议把缓存区中的数据进行传 输; PCMCIA/USB无线网卡接口,通过无线网卡接到音频数据后,把数据存入 ARM控制器的数据缓存区,经过ARM控制器解码后用所述音频处理芯片播放, 在网络节点要传送文件时,ARM控制器通过调用所述无线网卡接口,用FTP协 议把文件发送到目的地址,所述无线网卡接口在收到文件数据后,经过该ARM 控制器处理存放到存储空间中; SD卡接口是一个安全数码存储卡用的接口,与该ARM控制器互连,用于 扩展存储空间,进行数据业务扩展; ARM控制器,是所述音频、数据传输节点设备的控制器,用Linux作操作 系统,所述传输节点设备基于开放系统互连OSI网络模型,其基于嵌入式Linux 内核系统的网络层在IP协议的基础上开发了一套无线自组网络层算法,以实现 多跳、抗毁及可扩展的无线自组网,所述算法由下述系统初始化、寻找传输路 由、传输路由维护、重新建立路由各模块实现,其中: 系统初始化模块,对所述系统进行初始化,其中包含:网关、网络设备、 传输数据包结构以及网络节点的IP地址的设置; 寻找路由传输模块,依次执行以下步骤: 步骤(A1),源节点要发送数据,首先查看目的节点是否是本源节点,若是 则结束,若不是,则查看自己的路由表中是否有已到该目的节点的新鲜路由, 若有,则直接使用该路由,若不存在则该源点通过向邻居节点以洪泛方式广播 RREQ报文,以查找路由; 步骤(A2),若某个中间节点收到该RREQ报文,首先检查自己是否为发送 此RREQ的源节点,是则为环路包,将其丢弃,否则判断以该源节点IP地址、 广播ID标识的本次广播是否已被接收过,若已被接收过,则结束,否则,便存 储该源节点IP地址及广播ID; 步骤(A3),步骤(A2)中所述的中间节点根据该源节点IP地址查自己的 路由表判断是否存在反向路由,且该反向路由的目的节点的地址是该源节点IP, 若不存在,便在自己路由表中建立新的反向路由,若存在则执行步骤(A4); 步骤(A4),比较收到RREQ报文的序列号与自己路由表中该链路的源节点 的RREQ报文的序列号,以判断是否为最新路由且跳数最少,若是,则更新该 路由表中的源节点的序列号、跳数、下一跳以及生存时间,否则,执行步骤(A5); 步骤(A5),判断本中间节点是否为该RREQ报文的目的节点,若是,则更 新本中间节点路由应答报文RREP的序列号,并发送该报文,结束,否则,执 行下一步骤(A6); 步骤(A6),判断本中间节点到该RREQ报文的目的节点的路由是否最新, 若是,便发送路由应答RREP报文,否则,执行步骤(A7); 步骤(A7),向本中间节点的邻居广播RREQ报文,消息结束; 步骤(A8),收到步骤(A7)所述的RREQ报文消息的第2个中间节点, 继续执行步骤(A2)至步骤(A7),一直循环执行到找到该RREQ报文的目的 节点为止; 步骤(A9),收到步骤(A5)或步骤(A6)所述RREP报文的节点查找自 己的路由表,判断是否有到目的节点的正向路由,若不存在,则建立相应的正 向路由,否则,便执行步骤(A10); 步骤(10),判断步骤(A9)中所述的到目的节点的正向路由是否为最新路 由,且跳数最少,若不是,转步骤(A11),若是,则判断自己路由表中的到目 的节点的路由是否有效,若无效便结束,若有效,转步骤(A12); 步骤(A11),更新路由表并使用最新的路由路径把缓存中的到步骤(A10) 中所述的到目的节点的数据发送出去,若该节点是源节点,则要设置定时器和 报文序列号参数,转步骤(A12); 步骤(A12),若步骤(A9)中所述节点是源节点,便结束,若非源节点, 而是中间节点,查找该节点到源节点的有效路由,转发RREP; 步骤(A13),收到步骤(A12)中所述RREP包的中间节点,按步骤(A9) 到步骤(A12)重复执行,一直到达源节点为止; 传输路由维护模块,按以下步骤执行: 步骤(B1),网络中的节点周期性地广播HELLO报文,确认邻居节点是否 存在,若在设定的次数、设定的单次时间间隔内不再收到某一邻居节点发来的 应答HELLO报文,便认为该邻居节点已移动,则把到该邻居节点的链路标为断 开,否则,执行步骤(B2); 步骤(B2),判断邻居列表是否有该节点,若有,便更新生存时间,结束, 若没有,则添加此邻居节点,再结束; 路由差错控制模块,按以下步骤执行: 步骤(C1),若节点在使用某个链路时,发现该链路已断开,则从路由表中 删除包含该断开链路的路由,并发送路由出错报文RERR通知那些受链路断开 影响的节点; 步骤(C2),步骤(C1)中所述的那些受链路断开影响的节点把对应的路由 从各自的路由表中删去,沿途转发RERR报文的节点也删除自己路由表中对应 的路由; 重新建立路由模块,按以下步骤进行: 步骤(D1),当步骤(C1)中那些由于链路断开而受影响的节点在收到路由 出错报文RERR后,查找本节点到报文RERR中不可达目的节点而且下一跳是 该报文RERR的发送节点的最新路由是否存在,若存在,则更新此路由序号, 并把它置为不可用后,再设置转发报文RERR的更新信息,输入步骤(D2);若 不存在,转入步骤(D2); 步骤(D2),判断本节点是否存在到达报文RERR中不可达目的节点的其他 路由,若存在,则继续转发报文RERR,结束,若不存在,便结束。 技术领域 本节点设备应用于无线通信领域,为支持多点多跳的语音和数据传输的无 线装置,能够适用应用多频段的需求,在具有固定基础设施和无固定基础设施 的情况下均能有效自组网,能够自适应地选择路由,具有抗毁性、自组性以及 便携性等特点。 背景技术 现有的基于部署网络接入点的无线通信系统存在一定的问题: 覆盖范围有限。现有的无线通信网络依赖于预先部署的网络基础设施,从 而造成网络的覆盖范围有限。在一些场合虽然可以通过增加接入点来扩大覆盖 范围,但这一定程度上增加了系统成本,灵活性与可用性均较差; 无法充分利用现有的网络资源。现有各种无线通信网络都有自己的频段范 围,互不兼容,更无从谈互为补充,因此无法充分利用和挖掘现有的网络和设 备资源,造成极大的浪费; 提供的业务能力有限,无法适用于多频段应用需求。公网蜂窝移动通信系 统占用的是800M-900M以及1800-1900M频段,主要提供话音业务;无线局 域网工作在2.4G或5.8G频段,主要提供数据业务,与人们实现多种业务的需 要相距甚远; 抗毁能力和机动性差。现有通信网络依赖于预先部署的网络设施,但在一 些特殊场合,如战场上部队快速展开和推进、发生地震或水灾后的营救、野外 科学考察、偏远山区、意外情况等,现有无线网络极难部署且抗毁能力差,机 动性差,无法满足应用需求。 发明内容 本发明的目的在于提供一种能满足实际应用快速反应和协同工作需求以解 决上述问题的无线多跳网络音频、数据传输节点设备。 本发明的特征在于,含有:ARM控制器、音频处理芯片、SD卡接口、 PCMCIA/USB无线网卡接口以及电源,其中: 音频处理芯片,与所述ARM控制器互连,该音频芯片在采集完数据之后, 由ARM控制器进行处理,把处理后的数据压缩编码存放在缓存区内,ARM控 制器再通过PCMCIA/USB网卡接口用UDP传输协议把缓存区中的数据进行传 输; PCMCIA/USB无线网卡接口,通过无线网卡接到音频数据后,把数据存入 ARM控制器的数据缓存区,经过ARM控制器解码后用所述音频处理芯片播放。 在网络节点要传送文件时,ARM控制器通过调用所述无线网卡的传输接口,用 FTP协议发送到目的地址,所述无线网卡在收到文件数据后,经过该ARM控制 器处理存放到存储空间中; SD卡接口是一个安全数码存储卡用的接口,与该ARM控制器互连,用于 扩展存储空间,进行数据业务扩展; ARM控制器,是所述音频、数据传输节点设备的控制器,用Linux作操作 系统,所述传输节点设备基于开放系统互连OSI网络模型,其基于嵌入式Linux 内核系统的网络层在IP协议的基础上开发了一套无线自组网络层算法,以实现 多跳、抗毁及可扩展的无线自组网,所述算法由下述系统初始化、寻找传输路 由、传输路由维护、重新建立路由模块实现,其中: 系统初始化模块,对所述系统进行初始化,其中包含:网关、网络设备、 传输数据包结构以及网络节点的IP地址的设置; 寻找路由传输模块,按以下步骤获得: 步骤(A1),源节点要发送数据,首先查看目的节点是否是本源节点,若是 则结束,若不是,则查看自己的路由表中是否有已到该目的节点的新鲜路由, 若有,则直接使用该路由,若不存在则该源点通过向邻居节点以洪泛方式广播 RREQ报文,以查找路由; 步骤(A2),若某个中间节点收到该RREQ报文,首先检查自己是否为发送 此RREQ的源节点,是则为环路包,将其丢弃,否则判断以该源节点、IP地址、 广播ID标识的本次广播是否已被接收过,若已被接收过,则结束,否则,便存 储该源节点IP地址及广播ID; 步骤(A3),步骤(A2)中所述的中间节点根据该源节点IP地址查自己的 路由表判断是否存在反向路由,该反向路由的目的节点的地址是该源节点IP, 若不存在,便在自己路由表中建立新的反向路由,若存在则执行步骤(A4); 步骤(A4),比较收到RREQ报文的序列号与自己路由表中该链路的源节点 的RREQ报文的序列号,以判断是否为最新路由且跳数最少,若是,则更新该 路由表中的源节点的序列号、跳数、下一跳以及生存时间,否则,执行步骤(A5); 步骤(A5),判断本中间节点是否为该RREQ报文的目的节点,若是,则更 新本中间节点路由应答报文RREP的序列号,并发送该报文,结束,否则,执 行下一步骤(A6); 步骤(A6),判断本中间节点到该RREQ报文的目的节点的路由是否最新, 若是,便发送路由应答RREP报文,否则,执行步骤(A7); 步骤(A7),向本中间节点的邻居广播RREQ报文,消息结束; 步骤(A8),收到步骤(A7)所述的RREQ报文消息的第2个中间节点, 继续执行步骤(A2)至步骤(A7),一直循环执行到找到该RREQ报文的目的 节点为止; 步骤(A9),收到步骤(A5)或步骤(A6)所述RREP报文的节点查找自 己的路由表,判断是否有到目的节点的正向路由,若不存在,则建立相应的正 向路由,否则,便执行步骤(A10); 步骤(10),判断步骤(A9)中所述的到目的节点的正向路由是否为最新路 由,且跳数最少,若不是,转步骤(A11),若是,则判断自己路由表中的到目 的节点的路由是否有效,若无效便结束,若有效,转步骤(A12); 步骤(A11),更新路由表并使用最新的路由路径把缓存中的到步骤(A10) 中所述的到目的节点的数据发送出去,若该节点是源节点,则要设置定时器和 报文序列号参数,转步骤(A12); 步骤(A12),若步骤(A9)中所述节点是源节点,便结束,若非源节点, 而是中间节点,查找该节点到源节点的有效路由,转发RREP; 步骤(A13),收到步骤(A12)中所述RREP包的中间节点,按步骤(A9) 到步骤(A12)重复执行,一直到达源节点为止; 传输路由维护模块,按以下步骤执行: 步骤(B1),网络中的节点周期性地广播HELLO报文,确认邻居节点是否 存在,若在设定的次数、设定的单次时间间隔内不再收到某一邻居节点发来的 应答HELLO报文,便认为该邻居节点已移动,则把到该邻居节点的链路标为断 开,否则,执行步骤(B2); 步骤(B2),判断邻居列表是否有该节点,若有,便更新生存时间,结束, 若没有,则添加此邻居节点,再结束; 路由差错控制模块,按以下步骤执行: 步骤(C1),若节点在使用某个链路时,发现该链路已断开,则从路由表中 删除包含该断开链路的路由,并发送路由出错报文RERR通知那些受链路断开 影响的节点; 步骤(C2),步骤(C1)中所述的那些受链路断开影响的节点把对应的路由 从各自的路由表中删去,沿途转发RERR报文的节点也删除自己路由表中对应 的路由; 重新建立路由模块,按以下步骤进行: 步骤(D1),当步骤(C1)中那些由于链路断开而受影响的节点在收到路由 出错报文RERR后,查找本节点到报文RERR中不可达目的节点时而且下一跳 是该报文RERR的发送节点的最新路由是否存在,若存在,则更新此路由序号, 并把它置为不可用后,再设置转发报文RERR的更新信息,输入步骤(D2);若 不存在,转入步骤(D2); 步骤(D2),判断本节点是否存在到达报文RERR中不可达目的节点的其他 路由,若存在,则继续转发报文RERR,结束,若不存在,便结束。 本节点设备的优势体现在: 不需要固定基础设施的支持,在没有建立通信基础设施或通信基础设施遭 受破坏时可以采用; 临时快速自组网络,节点在网络拓扑结构变化的情况下可以自动地探测网 络拓扑信息,动态确定传输路由和选择工作参数,从而实现网络的有效控制和 管理; 分布式(将网络的控制功能分散到多个节点或全部节点中)、无中心的网络, 具有很强的鲁棒性和抗毁性,可以作为生存性较强的后备网络; 可以作为现有网络的补充,充分发挥各自的优势,协同工作。同时网络的 节点之间以对等的方式进行通信,具有高度的协作性; 适应性强,适合于多种场合、多种频段和多种业务需求。 本节点设备可以广泛应用于公安调度、指挥、报警、视频监控、防御体系 以及奥运安保等场合,在保护人民生命和财产方面将发挥重要的作用。此外本 节点设备还可以应用于特定领域,如对于偏远地区,网络的利用率低、架设具 有固定基础设施的网络成本高,在需要利用网络进行通信和协同工作时,如果 能够快速高效地临时组网将有效地减少资金浪费,取得很好的经济效益;对于 固定基础设施受到毁坏的场合或未覆盖到的地区,如地震、水灾引起的网络毁 坏等,可以快速完成救灾的指挥和调度,节省时间、最大限度地减少国家的经 济损失;动态场合和分布式系统,可以方便地用于分布式控制,特别适合于调 度和协调远端设备的工作,减少分布式控制系统的维护和重配置成本;个人通 信,不仅可以用于实现PDA、手机、手提电脑等个人电子通信设备之间的通信, 还可以构建虚拟教室和讨论组等崭新的移动对等应用;商业应用,可以组建家 庭无线网络、无线数据网络、移动医疗监护系统和无线设备网络,开展移动和 可携带计算以及无所不在的通信业务等。 附图说明 图1系统原理示意图; 图2系统路由进程; 图2中函数说明: structxa0net_proto_family*net_families[NPROTO]:向内核注册一个新的协议族。数组net_families中共 有NPROTO(32)项,其每一项都固定分配给一个family使用。 sock_register函数:加载协议族。 structxa0net_protocol*inet_protos[MAX_INET_PROTOS]:包含了当前系统中所有已添加的协议,结构 structxa0net_protocol用于注册协议。 inet_add_protocol函数:向数组inet_protos[MAX_INET_PROTOS]里添加协议。 tcp_v4_rcv函数:数据包接收函数。 ip_route_input函数:IP层接到一个数据包以后,如果需要进行路由,就调用函数ip_route_input。 ip_local_deliver函数:判断收到的IP包是本地的数据包,并把本地数据包处理函数的地址返回。 dev_add_pack函数:注册一个链路层以上的处理函数,用来使用新的网络层协议的。 staticxa0structxa0packet_ptype_ba
se:此数组包含了所有需要接收数据包的协议,以及接收函数的入口。 ip_recv函数:IP数据包接收函数。 dev_queue_xmit函数:网络接口核心层通过dev_queue_xmit这个函数向上层提供统一的发送接口。 dev_ba
se函数:指针structnet_device*dev_ba
se保存了网络接口核心层所知道的所有设备。 dev->hard_start_xmit函数:网络设备发送函数。 register_netdev函数:注册网络设备函数。 netif_rx函数:网络协议接口层调用此函数将接收到的数据包传输到网络协议的上层进行处理。 图3路由算法模块结构图; 图4接收RREQ的流程图; 图5接收RREP的流程图; 图6接收HELLO的流程图; 图7接收RERR的流程图。 具体实施方式 该设备的平台是一个完整的ARM嵌入式Linux开发平台,其硬件系统示 意图如图1所示,主要包含以下部件: 1、三星ARM920T内核处理器S3C2410A,S3C2410A是32位低功耗 RISC宏单元,其内部集成有16KB的指令缓存和数据缓存、LCD控制器、 NANDxa0Flashxa0Bootxa0Loader、系统管理器、3路UART、4路DMA、4路PWM和 1个内部时钟控制器、8路10位ADC和触摸屏接口、可编程的通用I/O口、 以及I2C和I2S总线接口、USBxa0Host/USBxa0Device接口等等,并带有SDxa0Host和 多媒体卡接口,有着非常丰富的片内外围,极大地简化了系统的设计。 2、存储器,包括2MBxa0NORxa0Flash,用于固化测试程序,如USBxa0DEVICE监 控程序、LCD测试程序等系统硬件外设测试程序,程序采用ADS编译;64MB SDRAM,所用芯片为K4S561632;64MBxa0NANDxa0Flash,用于固化LINUX内 核、根文件系统以及VIVI等。 3、PCMCIA接口:标准PCMCIA接口,支持无线网卡通讯和CF卡。 4、SD卡接口:可以支持MMC/SD卡。 5、20针JTAG调试接口。 6、复位电路。 7、功能单元扩展接口。 8、两个音频接口:一个输出,一个输入。 9、10M以太网接口。 10、SMC接口:可以扩展SMC存储卡。 11、电源。 本节点设备采用arm作为控制器(路由及相关控制功能均在ARM中实现), linux作为操作系统,其主要工作流程为: 发送语音时,首先音频芯片采集数据,经控制器进行处理,将数据压缩 编码之后,放在缓存区内,然后采用UDP传输协议进行传输;接收语音时,无 线网卡接到音频数据以后,把数据存入数据缓存区,经过控制器解码之后,用 音频芯片进行播放。也可通过扩展板上的音频输出接口经音频处理器处理传递 至用户端。 发送数据文件时,控制器调用无线网卡的传输接口,通过ftp协议将数据发 送到目的地址;接收数据文件时,无线网卡收到数据文件,传送至控制器进行 处理,然后存放到系统的存储空间中。也可通过扩展板上的SD卡将数据传送至 数据接收设备上。 为了实现无线多跳传输和网络自愈功能,该装置在ARM控制器中基于嵌入 式linux内核系统进行网络层开发,系统路由进程如图2所示。它实现了一种能够 具有发送,转发,自愈的路由算法,路由算法可分为五大模块,如图3所示。各 模块实现说明如下。 1)系统初始化模块 对嵌入式系统进行初始化,例如设置系统的网关,设置系统的网络设备, 设置传输数据包的结构,设置网络节点的IP等等。 2)寻找传输路由模块 如图4、5,源节点首先查看路由表中是否已有到目的节点的新鲜路由,如 有,则可直接使用该路由:如不存在,则通过向邻居以洪泛方式广播路由请求 报文RREQ来查找路由。收到RREQ的中间节点,查看自己的路由表中是否记 录有到该目的节点的有效的路由;若没有,中间节点更新路由表数据并向其邻 居转发RREQ;若有或该中间节点就是目的节点,将发送“路由回答”报文RREP 给源节点。源节点收到后,就获得了到目的节点的路由。 3)传输路由维护模块 如图6,通过周期性地广播hello报文来确认邻居的存在,如节点多次在规 定的时间间隔内不再收到其某一邻居节点发来的hello报文,它就认为该邻居节 点已移动,并将它到该邻居节点的链路标为断开。 4)路由差错控制模块 如果节点在使用某个链路时发现该链路断开,它将从路由表中删除包含该 断开链路的路由,并发送“路由出错”报文RERR通知那些受链路断开影响的 节点,让它们将对应路由从各自的路由表中删除,沿途转发RERR的节点也删 除自己路由表中的对应路由。 5)重新建立路由模块 如图7,当传输路由中断时,节点如果想要发送数据包,发现到目的节点的 路由已经不存在了,则该节点会把要传输的数据包放到缓存器里面,然后为目 的节点继续建立一条路由。路由建立成功后,把缓存器里面的数据包继续发送 出去。 本节点设备设计基于标准的开放系统互连OSI网络模型,网络层在IP协议 基础上开发了一套无线自组网网络层算法,实现了无线自组网多跳,抗毁,可 扩展性等功能。应用层主要基于TCP和UDP协议开发,实现语音和数据实时通 信业务。链路层和物理层兼容802.11a/b/g标准的无线网卡以及其他具有 PCMCIA/USB接口的网络设备。 本节点设备的特点主要体现在: 自组性 不需要固定基础设施的支持,在没有建立通信基础设施或通信基础设施遭 受破坏时可以采用; 临时快速自组网络,节点在网络拓扑结构变化的情况下可以自动地探测网 络拓扑信息,动态确定传输路由和选择工作参数,从而实现网络的有效控制和 管理; 支持多跳路由。 分布式(将网络的控制功能分散到多个节点或全部节点中)、无中心的网络, 具有很强的鲁棒性和抗毁性,可以作为生存性较强的后备网络。 当网络节点想要发送数据时,就会与目的节点建立一条路由,在这条路径 上传送数据。如果路径上某一个节点出现了故障或者传输路径超越了网络的覆 盖范围,传输路径就会断开,这时中间节点就会缓存数据包,重新建立传输路 径,继续发送数据。路径的重新选择减少了网络节点对固定设备和其他节点的 依赖性。 适应性强,适合于多种场合、多种频段和多种业务需求。 兼容802.11a/b/g标准的无线网卡以及其他具有PCMCIA/USB接口的网络设 备;支持实时语音与数据通信。 接入Internet 将移动IP和自组路由技术结合起来,进行Internet接入。 嵌入式开发,便携灵活 基于嵌入式arm的Linux系统开发,可以使节点设备具有便携灵活等特点。